package immutable;

/**
 * @Classname FinalStringDemo1
 * @Description TODO
 * @Date 2025/1/8 23:02
 * @Author zhuzhenguo
 */
public class FinalStringDemo1 {

    public static void main(String[] args) {
        String a = "wukong2";
        // 加了final之后，在编译期间就知道是准确值了，所以不会改变，会当成一个常量
        final String b = "wukong";
        // 一开始指向常量池中的wukong
        String d = "wukong";
        // 没有必要在去创建一个新的对象，直接用原来的对象指向和a同样的地址
        String c = b + 2;
        // 必须在运行的时候才能确定，在运行时确定的e时创建在堆上的
        String e = d + 2;
        // true，a、c指向的是常量池的
        System.out.println((a == c));
        // false
        System.out.println((a == e));
    }

}
